<template>
  <nav class="navbar navbar-dark bg-primary justify-content-between mb-4 px-4">
    <router-link class="navbar-brand" to="/">者也专栏</router-link>
    <ul v-if="!user.isLogin" class="list-inline mb-0">
      <li class="list-inline-item">
        <router-link to="/login" class="btn btn-outline-light my-2"
          >登陆</router-link
        >
      </li>
      <li class="list-inline-item">
        <router-link to="/signup" class="btn btn-outline-light my-2"
          >注册</router-link
        >
      </li>
    </ul>
    <ul v-else class="list-inline mb-0">
      <li class="list-inline-item">
        <Dropdown :title="`hello ${user.nickName}`">
          <DropdownItem>
            <router-link to="/create" class="dropdown-item"
              >新建文章</router-link
            >
          </DropdownItem>
          <DropdownItem>
            <router-link
              :to="{ name: 'column', params: { id: user.column } }"
              class="dropdown-item"
              >我的专栏</router-link
            >
          </DropdownItem>
          <DropdownItem disabled>
            <a href="#" class="dropdown-item">编辑资料</a>
          </DropdownItem>
          <DropdownItem>
            <a href="#" class="dropdown-item" @click.prevent="logout"
              >退出登录</a
            >
          </DropdownItem>
        </Dropdown>
      </li>
    </ul>
  </nav>
</template>

<script lang="ts" setup>
import { PropType, toRefs } from "vue";
import Dropdown from "./Dropdown.vue";
import DropdownItem from "./DropdownItem.vue";
import { UserProps } from "@/store";
import { useStore } from "vuex";
import createMessage from "@/components/createMessage";
const store = useStore();

const props = defineProps({
  user: {
    type: Object as PropType<UserProps>,
    required: true,
  },
});

const { user } = toRefs(props);
console.log(user.value)

const logout = () => {
  createMessage("2秒后退出登录", "default").then((res) => {
    res === true && store.commit("logOut");
  });
  // setTimeout(() => {
  //   store.commit('logOut')
  // }, 2000);
};
</script>

<style scoped></style>
